package com.vhall.component.controller.interactive.facade;

import com.vhall.component.entity.interactive.vo.*;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;

import java.util.List;

/**
 * console-问卷管理
 *
 * @author guoxin.wang
 * @date 2021/5/11
 */
@FeignClient(value = "QuestionConsoleFacade", path = "/v4/question/console")
public interface QuestionConsoleFacade {

    /**
     * 控制台-问卷关联房间列表
     *
     * @param reqVO 参数
     * @return 返回值
     */

    @GetMapping("/link-room-list")
    QuestionPage<QuestionConsoleLinkRoomListRspVO> linkRoomList(@Validated QuestionConsoleLinkRoomListReqVO reqVO);

    /**
     * 控制台-创建问卷
     *
     * @param reqVO 参数
     * @return 返回值
     */

    @PostMapping("/create")
    QuestionConsoleCreateRspVO create(@Validated QuestionConsoleCreateReqVO reqVO);

    /**
     * 控制台-问卷列表
     *
     * @param reqVO 参数
     * @return 返回值
     */

    @GetMapping(value = "/list")
    QuestionPage<QuestionConsoleListRspVO> list(@Validated QuestionConsoleListReqVO reqVO);

    /**
     * 控制台-删除问卷
     *
     * @param reqVO 参数
     * @return 返回值
     */

    @PostMapping("/delete")
    List<String> delete(@Validated QuestionConsoleDeleteReqVO reqVO);

    /**
     * 控制台-发布问卷
     *
     * @param reqVO 参数
     * @return 返回值
     */
    @GetMapping("/publish")
    String publish(@Validated QuestionConsolePublishReqVO reqVO);

    /**
     * 控制台-修改问卷
     *
     * @param reqVO
     * @return
     */

    @PostMapping("/update")
    QuestionConsoleCreateRspVO update(@Validated QuestionConsoleUpdateReqVO reqVO);

    /**
     * 统计-问卷使用记录
     *
     * @param req 参数
     * @return 返回值
     */

    @GetMapping("/get-question-record")
    QuestionLogPage<QuestionConsoleLogRspVO> getQuestionLog(@Validated QuestionConsoleLogReqVO req);

}
